API Gatewayで504エラーが発生した理由を教えてください
困っていた内容
API Gatewayで、下記の504エラーが発生しました。
Execution failed due to a network error communicating with endpoint: Connection is closed Method completed with status: 504
構成は
API Gateway → NLB → ECS
となっています。NLBやECSリソース状況などを確認しましたが、問題となる箇所は見つかりませんでした。リクエスト先のECSログにも、何も記録されていませんでした。API GatewayのログからNLBにリクエスト送信後、1秒ほどで接続が切られ、ネットワークエラーが発生していました。
この504エラーの発生原因と、対応方法を教えてください。
どう対応すればいいの?
当該エラーは、一時的なネットワークの問題の可能性が高いと考えられます。 上記のような一時的なエラーが発生した場合は、 クライアント側で複数回のリトライを実行してください。
もし、リトライを行っても全てのリクエストが失敗するなど、発生頻度が高い場合は、 詳細な調査を行いますので、 API Gateway の実行ログを添えてお問い合わせください。
参考資料
[1] AWS でのエラー再試行とエクスポネンシャルバックオフ - AWS 全般のリファレンス
DNS サーバー、スイッチ、ロードバランサーなど、ネットワークの多数のコンポーネントが、特定のリクエストの存続期間中どこでもエラーを生成する可能性があります。ネットワーク環境でこれらのエラー応答を処理する通常の方法は、クライアントアプリケーションで再試行を実装することです。この技術は、アプリケーションの信頼性を向上させ、開発者の運用コストを削減します。